<#assign superModelName='BaseEntity'>
<#assign idTypeName=table.idColumn.javaType.simpleName>
<#-- package -->
package com.github.freegeese.maven.plugin.autocode.demo.model;

<#-- imports -->
<#if table.modelImports??>
    <#list table.modelImports as import>
import ${import};
    </#list>
</#if>
<#if table.modelType??>
    <#if table.modelType.type=="Sortable">
        <#assign superModelName='Sortable'>
    <#elseif table.modelType.type=="Treeable">
        <#assign superModelName='Treeable'>
    </#if>
</#if>
import com.github.freegeese.maven.plugin.autocode.demo.base.${superModelName};

public class ${table.modelName} implements ${superModelName}<${idTypeName}> {
<#-- fields -->
<#list table.filteredColumns as column>
    private ${column.javaType.simpleName} ${column.property};
</#list>
<#-- getter setter method -->
<#list table.filteredColumns as column>

    public ${column.javaType.simpleName} ${column.getterMethod}() {
        return ${column.property};
    }

    public void ${column.setterMethod}(${column.javaType.simpleName} ${column.property}) {
        this.${column.property} = ${column.property};
    }
</#list>
}